<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		<h1>[name]</h1>

		<p class="desc">
			This class is used to convert a series of shapes to an array of
			[page:Path]s, for example an SVG shape to a path.
		</p>

		<h2>Constructor</h2>

		<h3>[name]( )</h3>
		<p>
			Creates a new ShapePath. Unlike a [page:Path], no points are passed in as
			the ShapePath is designed to be generated after creation.
		</p>

		<h2>Properties</h2>

		<h3>[property:Array subPaths]</h3>
		<p>Array of [page:Path]s.</p>

		<h3>[property:Array currentPath]</h3>
		<p>The current [page:Path] that is being generated.</p>

		<h3>[property:Color color]</h3>
		<p>[page:Color] of the shape, by default set to white (0xffffff).</p>

		<h2>Methods</h2>

		<h3>[method:this moveTo]( [param:Float x], [param:Float y] )</h3>
		<p>
			Starts a new [page:Path] and calls [page:Path.moveTo]( x, y ) on that
			[page:Path]. Also points [page:ShapePath.currentPath currentPath] to that
			[page:Path].
		</p>

		<h3>[method:this lineTo]( [param:Float x], [param:Float y] )</h3>
		<p>
			This creates a line from the [page:ShapePath.currentPath currentPath]'s
			offset to X and Y and updates the offset to X and Y.
		</p>

		<h3>
			[method:this quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )
		</h3>
		<p>
			This creates a quadratic curve from the [page:ShapePath.currentPath currentPath]'s offset to x and y with cpX and cpY as control point and
			updates the [page:ShapePath.currentPath currentPath]'s offset to x and y.
		</p>

		<h3>
			[method:this bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )
		</h3>
		<p>
			This creates a bezier curve from the [page:ShapePath.currentPath currentPath]'s offset to x and y with cp1X, cp1Y and cp2X, cp2Y as control
			points and updates the [page:ShapePath.currentPath currentPath]'s offset
			to x and y.
		</p>

		<h3>[method:this splineThru] ( [param:Array points] )</h3>
		<p>points - An array of [page:Vector2]s</p>
		<p>
			Connects a new [page:SplineCurve] onto the [page:ShapePath.currentPath currentPath].
		</p>

		<h3>[method:Array toShapes]( [param:Boolean isCCW] )</h3>
		<p>isCCW -- Changes how solids and holes are generated</p>
		<p>
			Converts the [page:ShapePath.subPaths subPaths] array into an array of
			Shapes. By default solid shapes are defined clockwise (CW) and holes are
			defined counterclockwise (CCW). If isCCW is set to true, then those are
			flipped.
			<br />
		</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/extras/core/ShapePath.js src/extras/core/ShapePath.js]
		</p>
	</body>
</html>
